Microsoft Office Excel nie ma dostępu do pliku " c:\inetpub\wwwroot\Timesheet\App Data\Template.xlsx"

Mój kod wygląda następująco:-

Microsoft.Office.Interop.Excel.Application oXL = null;
Microsoft.Office.Interop.Excel.Sheets sheets;
Application excel = new Microsoft.Office.Interop.Excel.Application();


excel.Workbooks.Add(System.Reflection.Missing.Value);

/*
    * Here is the complete detail's about Workbook.Open()
    * 
    *  Excel.Workbooks.Open(String Filename, Object UpdateLinks, Object ReadOnly, Object Format, 
    *  Object Password, Object WriteResPassword, Object IgnoreReadOnlyRecommended, Object Origin,
    *  Object Delimiter, Object Editable, Object Notify, Object Converter, Object AddToMru, Object Local, Object CorruptLoad)
    */

Workbook workbook = excel.Workbooks.Open(
    System.Web.HttpContext.Current.Server.MapPath("~/App_Data/Template.xlsx"),
    Missing.Value, true, Missing.Value, Missing.Value,
    Missing.Value, Missing.Value, Missing.Value,
    Missing.Value, Missing.Value, Missing.Value,
    Missing.Value, Missing.Value, Missing.Value,
    Missing.Value);
sheets = workbook.Worksheets;

Teraz Kolejka:-

workbook = excel.Workbooks.Open(
    System.Web.HttpContext.Current.Server.MapPath("~/App_Data/Template.xlsx"),
    Missing.Value, true, Missing.Value, Missing.Value,
    Missing.Value, Missing.Value, Missing.Value,
    Missing.Value, Missing.Value, Missing.Value,
    Missing.Value, Missing.Value, Missing.Value,
    Missing.Value);

Jest uruchamiany bezpośrednio z visual studio (F5), ale gdy próbuję uzyskać do niego dostęp za pomocą IIS, nie zadziała. Wyrzuca błąd w następujący sposób: -

Microsoft Office Excel nie może uzyskać dostępu do pliku " c:\inetpub\wwwroot\Timesheet\App_Data\Template.xlsx". Istnieje kilka możliwych powodów:
* Nazwa pliku lub ścieżka nie istnieje.
* Plik jest używany przez innego program.
* Skoroszyt, który próbujesz zapisać, ma tę samą nazwę, co aktualnie otwarty skoroszyt.

Próbowałem obejść pracę jako:-

  • Folder i plik istnieją, dając dostęp do IUSR_## #(użytkownik IIS) i do użytkownika ASPNET w folderze, w którym znajduje się plik.
    • at Component Services (DCOM) dał dostęp do odpowiedniego użytkownika.

Dałem już wszystkie uprawnienia do folderu, w którym szablon(.xlsx) exists

Jakieś sugestie??
Author: Shubh, 2011-08-18

7 answers

Spróbuj tego:

  1. Utwórz katalog

C:\Windows\SysWOW64\config\systemprofile\Desktop

(dla 32-bitowej wersji programu Excel/Office na 64-bitowym komputerze z systemem Windows) lub

C:\Windows\System32\config\systemprofile\Desktop

(dla 32-bitowej wersji pakietu Office na 32-bitowym komputerze z systemem Windows lub 64-bitowej wersji pakietu Office na 64-bitowym komputerze z systemem Windows).

  1. do katalogu Desktop dodaj pełny control permissions for the odpowiedni użytkownik(na przykład w Win7 & IIS 7 & DefaultAppPool Ustaw uprawnienia dla użytkownika IIS AppPool\DefaultAppPool ).

Original post with answer:

 115
Author: Eric Bonnot,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-10 10:14:01

Pozwolę sobie zauważyć, że w moim miejscu, dodając c:\windows\syswow64\config\systemprofile\desktop katalog nie działa.

Chodzi o to, że WOW64 oznacza Windows na Windows64, co oznacza, że w rzeczywistości dotyczy 32-bitowych programów działających na 64-bitowym systemie operacyjnym.

Ponieważ mam zainstalowany 64-bitowy Excel, właściwy katalog okazał się być c:\windows\system32\config\systemprofile\desktop

 15
Author: Nikhil,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-04 15:28:30

W moim przypadku, zastosowałem się do sugestii dostarczonych tutaj i rozwiązałem problem.

Kroki:

  1. Run dcomcnfg
  2. przejdź do Console Root \Component Services \ Computers\My Computer\DCOM Config \ Microsoft Excel Application
  3. Kliknij prawym przyciskiem myszy Aplikacja Microsoft Excel
  4. Select Properties
  5. przejdź do tożsamość zakładka
  6. Wybierz użytkownika interaktywnego.

W kroku 2, jeśli nie możesz zlokalizować tej ścieżki, spróbuj uruchomić mmc comexp.msc /32 zamiast dcomcnfg.

 2
Author: datchung,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-08-21 17:24:44

Chciałbym coś dodać do odpowiedzi Erica Bonnota : Odpowiedź zadziałała częściowo, ponieważ pracowałem na serwerze IIS z użytkownikiem Nie-adminem z powerpoint Pia.

Zauważyłem, że nie mogę otworzyć pliku pptx, jeśli ten miał nośnik (na przykład zdjęcie) w nim.

"hack" polegał na dodaniu praw do użytkownika windows (tego używającego PIA) w katalogach systemprofile/AppData.

Hope this helps

 1
Author: Amaury Bauzac,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-23 09:12:45

Byłem wcześniej próbować ten problem, a następnie rozwiązany.

Rozwiązanie:

Umieściłem pełne uprawnienia do określonego folderu (pod folder i pliki) i sprawdziłem działa dobrze.

 0
Author: user2617875,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-25 08:54:02

Zapakowałem WCF w Usługę Windows. Tworzenie folderów pulpitu rozwiązało to dla mnie na jednej maszynie, ale nie na innej.

Moim problemem w końcu było to, że moja usługa Windows nie działa pod aktywnym użytkownikiem maszyny. Skonfigurowanie usługi do działania pod użytkownikiem, który jest aktywny na maszynie rozwiązało ten problem dla mnie jak dotąd.

Tylko kombinacja

  • Istniejący Katalog Pulpitu
  • usługa działająca pod rzeczywistym użytkownikiem Konto

Dla mnie działa.

Ten artykuł prowadzi mnie do pełnego rozwiązania: nie można uzyskać dostępu do pliku excel

 0
Author: Florian Moser,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:10:06

To działa

Excel.exe / safe

To nie robi i daje ten sam błąd co zwykłe uruchamianie Excela

Excel.exe / automation

Dotyczy to również wszystkich aplikacji MS Office 2007 dla dowolnego pliku sieciowego. Lokalny dostęp do plików jest w porządku.

 -1
Author: wbaz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-31 19:56:23